﻿using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;

namespace AzureDiagMon.Common.Algorithms.FragmentedRanges
{
    public abstract class FragmentedRange
    {
        public static readonly IFragmentedRangeResolverStrategy DefaultResolverStrategy =
            new LastFirstResolverStrategy();

        public IFragmentedRangeResolverStrategy ResolverStrategy { get; set; }

        protected FragmentedRange(IFragmentedRangeResolverStrategy resolverStrategy = null)
        {
            if (resolverStrategy == null)
            {
                ResolverStrategy = DefaultResolverStrategy;
            }
            else
            {
                ResolverStrategy = resolverStrategy;
            }
        }

        public abstract IEnumerable<IFragmentedRangeSection> GetEmptySections();


    }


}
